import type { Router } from 'vue-router'
import { isLoggedIn } from '@/utils/auth'
import { hasPermission } from '@/utils/permission'

export function setupGuards(router: Router) {
  // 路由前置守卫
  router.beforeEach(async (to, from, next) => {
    // 设置页面标题
    document.title = `${to.meta.title || ''} - 南通评估系统`
    
    // 不需要登录的页面直接放行
    if (to.meta.requiresAuth === false) {
      return next()
    }
    
    // 检查是否已登录
    if (!isLoggedIn()) {
      // 未登录，跳转到登录页面
      return next({
        path: '/login',
        query: { redirect: to.fullPath }
      })
    }
    
    // 有token，继续检查权限
    const permissionKey = to.meta.permission as string
    if (permissionKey && !hasPermission(permissionKey)) {
      return next('/404')
    }
    
    // 通过所有检查，放行
    return next()
    
    // 注意：在实际项目中，可能还需要验证token的有效性
    // 例如发送请求到后端验证token，或检查token的过期时间
  })
}
